#ifndef IDATAMANIPULATOR_H
#define IDATAMANIPULATOR_H
#include "Message.h"
#include "MessageTypes.h"
#include <QPoint>
#include <QVector>
#include <QImage>
#include "ContainerNode.h"
class IDataManipulator
{
public:
    void CreatePjoject();
    void AddNewMovieClipNodeAt(Index parentIndex,QPoint position);
    void AddNewPictureNodeAt(Index parentIndex,QPoint position,QString path);
    void AddNewRectNodeAt(Index parentIndex,QPoint position);
    void AddNewPathNodeAt(Index parentIndex,QPoint position,QVector<QPoint>pathPoints);
    void DeleteNodeAtIndex(Index index);
    void SetNodeProperty(propertyType pt,double value);
    void SetNodeProperty(propertyType pt,double value,double time);
    void SetNodeProperty(propertyType pt,double value,double time,easeType easy);
    ContainerNode* getRoot();
    ContainerNode* getNodeByIndex(Index index);
    QImage getImageAtIndex(Index index);
    int getNumberOfChildrenAtIndex(Index parentIndex);
    void OpenData(ContainerNode*);
    Index getParentIndex(Index index);
    NodeType getNodeType(Index index);
    QPoint getPosition(Index index);
    QVector<QPoint> getPathPoints(Index index);
    QString getPicPath(Index index);
};

#endif // IDATAMANIPULATOR_H
